package crud.dao.impl;

import java.util.ArrayList;
import java.util.List;

import common.client.data.Libelle;
import common.client.data.LibelleImpl;
import common.data.dao.impl.GenericDaoImpl;

import crud.client.data.Catalogue;
import crud.client.data.CataloguePk;
import crud.dao.CatalogueDAO;



public class CatalogueDAOImpl extends GenericDaoImpl<Catalogue, CataloguePk> implements CatalogueDAO
{
	/* (non-Javadoc)
	 * @see fr.asso.egide.data.dao.CatalogueDAO#loadTable(java.lang.String)
	 */
	public List<Catalogue> loadTable(String codeTable)
	{
		return this.loadAllOrderBy("Catalogue.codeTable = '" + codeTable + "'", "Catalogue.ordre, Catalogue.libelle");
	}
	
	/* (non-Javadoc)
	 * @see fr.asso.egide.data.dao.CatalogueDAO#loadTableAslibelleList(java.lang.String)
	 */
	public List<Libelle> loadTableAslibelleList(String codeTable)
	{
		List<Catalogue> catalogueList = loadTable(codeTable);
		List<Libelle> libelleList = new ArrayList<Libelle>();
		
		for (Catalogue catalogue : catalogueList)
		{
			libelleList.add(new LibelleImpl(catalogue.getCodeDetail(), catalogue.getLibelle()));
		}
		
		return libelleList;
	}

	/* (non-Javadoc)
	 * @see fr.asso.egide.data.dao.CatalogueDAO#get(java.lang.String, java.lang.String)
	 */
	public Catalogue get(String codeTable, String codeDetail)
	{
		return this.get(new CataloguePk(codeTable, codeDetail));
	}
}
